﻿#include "greet_impl.h"  // 在实现文件中包含头文件，使得编译器能够解析类的具体实现。
#include "greet_activator.h"

void GreetActivator::start(ctkPluginContext* context)
{
    m_pImpl = new GreetImpl();

    // 注册服务
    // m_pImpl是实现类对象，通过父类HelloService接口，注册子类对象m_pImpl，使其拥有服务sayHello
    // m_pImpl是实现类对象，注册父类ByeService接口，注册子类对象m_pImpl，使其拥有服务sayBye
    context->registerService<HelloService>(m_pImpl); 
    context->registerService<ByeService>(m_pImpl);   
}

void GreetActivator::stop(ctkPluginContext* context)
{
    Q_UNUSED(context)

    delete m_pImpl;  // 没有用到智能指针管理m_pImpl，所以要自己释放。
}
